package com.shop.cereshop.commons.tencent.im.model.msg.data;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @description: 文件消息数据
 *
 * @author zdd
 * @date 2025/9/9 22:11
 * @version 1.0
 */
@ApiModel("文件消息数据")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FileMsgData implements Serializable, MsgData {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("文件下载地址，可通过该 URL 地址直接下载相应文件")
    @NotBlank(message = "url不能为空")
    private String url;

    @ApiModelProperty("文件的唯一标识，客户端用于索引文件的键值")
//    @NotBlank(message = "uuid不能为空")
    private String uuid;

    @ApiModelProperty("文件数据大小，单位：字节")
    @NotNull(message = "fileSize不能为空")
    private Integer fileSize;

    @ApiModelProperty("文件名称")
    @NotBlank(message = "fileName不能为空")
    private String fileName;

    @ApiModelProperty("文件下载方式标记。目前 Download_Flag 取值只能为2，表示可通过Url字段值的 URL 地址直接下载文件")
    @NotNull(message = "downloadFlag不能为空")
    private Integer downloadFlag;

}
